using Newtonsoft.Json;

namespace Weather.Model;

public class WeatherData
{
    [JsonProperty("position")]
    public Position Position { get; set; }
    [JsonProperty("weather")]
    public WeatherToday Weather { get; set; }
    [JsonProperty("feature")]
    public Feature Feature { get; set; }
    [JsonProperty("base")]
    public DateInfo Base { get; set; }
    
    [JsonProperty("psPm25")]
    public Air PsPm25 { get; set; }
    
    [JsonProperty("timeNodeArr")]
    public List<string> TimeNodeArr { get; set; }
    [JsonProperty("temperatureVerticalY")]
    public List<string> TemperatureVerticalY { get; set; }
    
    [JsonProperty("precipitationVerticalY")]
    public List<string> PrecipitationVerticalY { get; set; }
    [JsonProperty("pmVerticalY")]
    public List<int> PmVerticalY { get; set; }

    [JsonProperty("windVerticalY")]
    public List<int> WindVerticalY { get; set; }


    [JsonProperty("temperaturePointArr")]
    public List<object[]> TemperaturePointArr { get; set; }
    [JsonProperty("precipitationPointArr")]
    public List<object[]> PrecipitationPointArr { get; set; }
    
    [JsonProperty("pmPointArr")]
    public List<object[]> PmPointArr { get; set; }
    [JsonProperty("windPointArr")]
    public List<object[]> WindPointArr { get; set; }

    [JsonProperty("weather15DayData")]
    public List<Weather15DayDataItem> Weather15DayData { get; set; }
    [JsonProperty("temperatureDayList")]
    public List<TemperaturePoint> TemperatureDayList { get; set; }
    [JsonProperty("temperatureNightList")]
    public List<TemperaturePoint> TemperatureNightList { get; set; }
    

}

public class Weather15DayDataItem
{
    [JsonProperty("formatDate")]
    public string FormatDate { get; set; }
    [JsonProperty("date")]
    public string Date { get; set; }
    [JsonProperty("formatWeek")]
    public string FormatWeek { get; set; }
    [JsonProperty("weatherIcon")]
    public string WeatherIcon { get; set; }
    [JsonProperty("weatherWind")]
    public WeatherWindData WeatherWind { get; set; }
    [JsonProperty("weatherPm25")]
    public string WeatherPm25 { get; set; }
    [JsonProperty("weatherText")]
    public string WeatherText { get; set; }
}

public class WeatherWindData
{
    [JsonProperty("windDirectionDay")]
    public string WindDirectionDay { get; set; }
    [JsonProperty("windDirectionNight")]
    public string WindDirectionNight { get; set; }
    [JsonProperty("windPowerDay")]
    public string WindPowerDay { get; set; }
    [JsonProperty("windPowerNight")]
    public string WindPowerNight { get; set; }
}

public class TemperaturePoint
{
    [JsonProperty("temperature")]
    public string Temperature { get; set; }
    [JsonProperty("x")]
    public int X { get; set; }
    [JsonProperty("y")]
    public double Y { get; set; }
}